package com.mybatis.mapper;

import com.mybatis.pojo.User;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @auther 尚智江
 * @Date 2022/7/6 14:15
 */
public interface UserMapper {
    /**
     * MyBatis面向接口编程的两个一直性
     * 1.映射文件的 namespace 要和 mapper 接口的全类名保持一致
     * 2.映射文件中 SQL 语句的 id 要和 mapper 接口中的方法名一致
     *
     *   表--实体类--mapper接口--映射文件
     */
    /**
     * 添加用户信息
     */
    int insertUser();
    void updateUser();
    List<User> getAll();
    List<User> selectUserBuyUsername(String username);
    User selectUserNameAndPWD(@Param("username") String username,@Param("password") String password);

    /**
     * 根据id获取user信息存到map
     * @param id id
     * @return Map
     */
    Map<String,Object> getMapByID(Integer id);

    /**
     * 用map查所有
     * @return map
     */
    List<Map<String, Object>> getAllToMap();

    @MapKey("id")
    Map<String, Object> getAllUserToMap();
}
